﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace proyectoferreteria
{
    public partial class frmclientenatural : System.Web.UI.Page
    {
        bdferreteriaEntities context = new bdferreteriaEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    this.cargarcomborubro();
                    this.CargarControlesParametro(long.Parse(Request.QueryString["idcliente"].ToString()));

                }

            }
            catch (Exception) { }
        }
        private void CargarControlesParametro(long idcliente)
        {
            //sacando los datos de lA TABLA cliente
            cliente objcliente = context.cliente.FirstOrDefault(a => a.idcliente == idcliente);
            this.txbidcliente.Text = objcliente.idcliente.ToString();
            this.txbdireccion.Text = objcliente.direccion;
            this.txbtelefono.Text = objcliente.telefono;
            this.txbcelular.Text = objcliente.celular.ToString();
            this.txbnit.Text = objcliente.nit.ToString();
            this.cbrubro.SelectedValue = objcliente.idrubro.ToString();

            //sacandolos datos de la TABLA natural
            natural objnatural = context.natural.FirstOrDefault(a => a.idcliente == idcliente);
            this.txbnombre_cliente.Text = objnatural.nombre_cliente;
            this.txbapp.Text = objnatural.app;
            this.txbapm.Text = objnatural.apm;
            this.txbfecha_nacimiento.Text = DateTime.Parse(objnatural.fecha_nacimiento.ToString()).ToShortDateString();
            this.txbdocIdent.Text = objnatural.doc_identidad;

        }
        private void cargarcomborubro()
        {
            var rubro = from a in context.rubro
                        select a;
            this.cbrubro.DataSource = rubro;
            this.cbrubro.DataTextField = "nombre_rubro";
            this.cbrubro.DataValueField = "idrubro";
            this.cbrubro.DataBind();
        }
        protected void dpFechanacimiento_SelectionChanged(object sender, EventArgs e)
        {
            this.txbfecha_nacimiento.Text = this.dpFechanacimiento.SelectedDate.ToShortDateString();
            this.dpFechanacimiento.Visible = false;
        }
        private void cargarObjetoCliente(ref cliente objcliente)
        {
            objcliente.idcliente = long.Parse(this.txbidcliente.Text);
            objcliente.direccion = this.txbdireccion.Text;
            objcliente.telefono = this.txbtelefono.Text;
            objcliente.celular = Int32.Parse(this.txbcelular.Text);
            objcliente.nit = long.Parse(this.txbnit.Text);
            objcliente.idrubro = long.Parse(this.cbrubro.SelectedValue.ToString());
        }
        private void cargarObjetoNatural(ref natural objnatural)
        {
            objnatural.idcliente = long.Parse(this.txbidcliente.Text);
            objnatural.nombre_cliente = this.txbnombre_cliente.Text;
            objnatural.app = this.txbapp.Text;
            objnatural.apm = this.txbapm.Text;
            objnatural.fecha_nacimiento = DateTime.Parse(this.txbfecha_nacimiento.Text);
            objnatural.doc_identidad = this.txbdocIdent.Text;
        }
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            dpFechanacimiento.Visible = true;
        }
        protected void btnregistrar_Click(object sender, EventArgs e)
        {
            cliente objcliente = new cliente();

            long idcliente = (from c in context.cliente select c.idcliente).Max() + 1;
            this.txbidcliente.Text = idcliente.ToString();

            this.cargarObjetoCliente(ref objcliente);
            context.cliente.AddObject(objcliente);

            natural objnatural = new natural();
            this.cargarObjetoNatural(ref objnatural);
            context.natural.AddObject(objnatural);

            Int32 res = context.SaveChanges();
            if (res > 0)
            {
                this.Label19.Text = "Cliente natural registrado !!!";
            }
            else
            {
                this.Label19.Text = "Error al registrar !!!";
            }
        }

        protected void btnmodificar_Click(object sender, EventArgs e)
        {
            long id = long.Parse(this.txbidcliente.Text);

            cliente objcliente = context.cliente.FirstOrDefault(a => a.idcliente == id);
            this.cargarObjetoCliente(ref objcliente);

            natural objnatural = context.natural.FirstOrDefault(a => a.idcliente == id);
            this.cargarObjetoNatural(ref objnatural);

            int nroActualizacion = context.SaveChanges();
            if (nroActualizacion > 0)
            {
                this.Label19.Text = "Cliente Modificado !!!";
            }
            else
            {
                this.Label19.Text = "Error al Modificar !!!";
            }
        }
        protected void btnimprimir_Click(object sender, EventArgs e)
        {

        }
          
       
    }
}